//测试代码 = 测试套件（describe） + 测试用例（it） + 断言（有很多风格，判断结果和预期是不是一样）
//测试两个东西，代码执行速度 和 正确与否

var expect = require('chai').expect; //引入断言库chai的expect方法

//测试套件的基本使用方法
//test Array.indexOf() use assert

describe ('Array',function () {
   it('should return -1',function () {
       assert.equal([1,2,3].indexOf(4),-1)
   })
});

//hook
describe ('hook',function () {
    before(function () {
        //run before all tests in this block
    });
    after(function () {
        //run after all tests in this block
    });
    beforeEach(function () {
        //run before each tests in this block
    });
    afterEach(function () {
        //run after each tests in this block
    });
});

//hook describe 有名字用名字，没有名字用描述。

//only test
describe ('Array',function () {
   describe.only('#indexOf',function () {
       // if you just want to test this block
   })
});
describe ('Array',function () {
    describe.only('#indexOf',function () {
        it.only('should ...',function () {
            // if you just want to test this block
        });
       it('',function () {
           
       })
    })
});

//skip test
describe ('Array',function(){
   describe.skip('indexOf()',function () {
       //skip this test
   })
});

//delay
setTimeout(function () {
    describe ('setTimeout',function () {

    });
},4000);

//retry test
describe ('retries', function () {
    //test all test 4 times
    this.retries(4);
    it('should...',function () {
        //test this test 3 times
        this.retries(3);
    })
});